<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Login Page</title>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 样 式 文 件 -->
    <link rel="stylesheet" href="{_STATIC_PATH}/component/pear/css/pear.css"/>
    <link rel="stylesheet" href="{_STATIC_PATH}/admin/css/other/login.css"/>
</head>
<!-- 代 码 结 构 -->
<body background="{_STATIC_PATH}/admin/images/background2.svg" style="background-size: cover;">
<form class="layui-form" action="javascript:void(0);">
    <div class="layui-form-item">
        <h2 class="title">Jiu Xiao Admin</h2>
        <p class="desc">九霄道长web脚手架</p>
    </div>
    <div class="layui-form-item">
        <label class="login-icon layui-icon layui-icon-username" for="name"></label>
        <input placeholder="账 户" id="name" lay-verify="name" name="name" type="text"
               class="layui-input"/>
    </div>
    <div class="layui-form-item">
        <label class="login-icon layui-icon layui-icon-password" for="password"></label>
        <input placeholder="密 码" id="password" lay-verify="pass" name="password" type="password"
               class="layui-input"/>
    </div>
    <div class="layui-form-item">
        <div id="login">加载ing</div>
        <div id="embed-captcha" style="display: none"></div>
    </div>
    <div class="layui-form-item">
        <button type="button" class="pear-btn pear-btn-success login" lay-submit lay-filter="login">
            登 入
        </button>
    </div>
</form>
<!-- 资 源 引 入 -->
<script src="{_STATIC_PATH}/component/layui/layui.js"></script>
<script src="{_STATIC_PATH}component/gt.js"></script>
<script src="{_STATIC_PATH}/component/pear/pear.js"></script>
<script>
    layui.use(['form', 'jquery', 'button'], function () {
        var form = layui.form;
        var button = layui.button;
        var $ = layui.jquery;
        var index;
        //自定义验证规则
        form.verify({
            name: function (value) {
                if (value.length < 4) {
                    return '账号至少得4个字符啊';
                }
            }
            , pass: [
                /^[\S]{6,12}$/
                , '密码必须6到12位，且不能出现空格'
            ]
        });
        $.ajax({
            // 获取id，challenge，success（是否启用failback）
            url: '{:url("api/admin/verify")}' + "?" + (new Date()).getTime(), // 加随机数防止缓存
            type: "get",
            dataType: "json",
            success: function (data) {
                index = layer.load(2, {
                    shade: [0.1, '#fff'] //0.1透明度的白色背景
                });
                // 使用initGeetest接口
                // 参数1：配置参数
                // 参数2：回调，回调的第一个参数验证码对象，之后可以使用它做appendTo之类的事件
                initGeetest({
                    gt: data.gt,
                    challenge: data.challenge,
                    new_captcha: data.new_captcha,
                    width: "100%",
                    product: "popup", // 产品形式，包括：float，embed，popup。注意只对PC版验证码有效
                    offline: !data.success // 表示用户后台检测极验服务器是否宕机，一般不需要关注
                }, handlerEmbed);
            }
        });
        var handlerEmbed = function (captchaObj) {
            $('#login').hide();
            $('#embed-captcha').show();
            captchaObj.appendTo("#embed-captcha");
            layer.close(index);
            // 进行登录操作
            // 登 录 提 交
            form.on('submit(login)', function (data) {
                button.load({
                    elem: '.login',
                    time: 1500,
                    done: function () {
                        data = data.field;
                        var validate = captchaObj.getValidate();
                        if (!validate) {
                            layer.msg('请先验证');
                            return false;
                        }
                        $.ajax({
                            url: "check",
                            type: "post",
                            // dataType: "json",
                            data: {
                                name: data.name,
                                password: data.password,
                                // 验证码数据，这些数据不用自己获取
                                // 这是二次验证所需的三个值
                                // 当然，你也可以直接设置验证码单独校验，省略其他信息
                                geetest_challenge: validate.geetest_challenge,
                                geetest_validate: validate.geetest_validate,
                                geetest_seccode: validate.geetest_seccode
                            },
                            // 这里是正确返回处理结果的处理函数
                            // 假设你就返回了1，2，3
                            // 当然，正常情况是返回JSON数据
                            success: function (result) {
                                // 1表示验证码验证失败
                                if (result.status == "1") {
                                    layer.msg(result.message, function () {
                                        window.location = '';
                                    });
                                } else {
                                    layer.msg(result.message);
                                }
                            }
                        });

                        return false;
                    }
                })
                return false;
            });
        }
    })
</script>
</body>
</html>
